perm filename L2[F8,ALS]3 blob sn#319426 filedate 1977-12-04 generic text, type T, neo UTF8
     1		     *CHECKERS as of December 4 1977.  EQU's
     2		     * S2 section
     3		     *Resident package addresses
     4		     JOYT    EQU     H'0C00'
     5		     LINE    EQU     H'0FDF'
     6		     SHCB    EQU     H'0FE2'
     7		     INPF    EQU     H'0FE3'
     8		     WTLN    EQU     H'0FE5'
     9		     TXC     EQU     H'0FE8'
    10		     CMRG    EQU     H'0FEA'
    11		     DBNC    EQU     H'0FEB'
    12		     UPI     EQU     H'0FFA'
    13		     JOYI    EQU     H'21AD'
    14		     IJS     EQU     H'22DB'
    15		     SHL     EQU     H'27C6'
    16		     SHR     EQU     H'27D3'
    17		     PUSH    EQU     H'40A9'
    18		     POPS    EQU     H'40BC'
    19		     SPS     EQU     H'40D0'
    20		     WDG     EQU     H'4105'
    21		     WAUD    EQU     H'41C8'
    22		     WAU1    EQU     H'41CC'
    23		     CDS     EQU     H'41D5'
    24		     WMS     EQU     H'4205'
    25		     UDAT    EQU     H'424D'
    26		     TRAN    EQU     H'43CD'
    27		     FCS     EQU     H'43D6'
    28		     WAIT    EQU     H'4501'
    29		     TIR     EQU     H'45DB'
    30		     CLER    EQU     H'4762'
    31		     *Misc. constants
    32		     TCMD    EQU     H'44'
    33		     BCMD    EQU     H'6D'
    34		     TCOL    EQU     H'80'   TEXT COLOR
    35		     ULIN    EQU     H'F5'
    36		     COM     EQU     H'8F7'
    37		     *
    38		     *RAM assignments
    39		     BFLG    EQU     H'0C20'
    40		     BLNF    EQU     H'0C21'	    Blink flag
    41		     XBLN    EQU     H'0C22'	    X value to blink
    42		     YBLN    EQU     H'0C23'	    Y value to blink
    43		     BCNT    EQU     H'0C24'	    Counter used in OKMV
    44		     BKMV    EQU     H'0C25'	    Data to index book moves
    45		     HSAV    EQU     H'0C26'	    H save location
    46		     HSAL    EQU     H'0C27'	    HL save location
    47		     PLY0    EQU     H'0C28'	    Players choice of ply depth
    48		     COL0    EQU     H'0C29'	    0 if machine plays black
    49		     SELX    EQU     H'0C2A'	    Move count
    50		     AP20    EQU     H'0C2C'	    ACTM+PASM+9 at HL=20
    51		     XOLD    EQU     H'0C2D'	    X coord touch point (double jump)
    52		     YOLD    EQU     H'0C2E'	    Y coord touch point (double jump)
    53		     CFLG    EQU     H'0C2F'	    Compression flag for ply record
    54		     OBJ0    EQU     H'0C30'	    Board 1, thru H'0E0F'
    55		     TREE    EQU     H'0E10'	    Tree data, thru H'0EFF', Player's b
    56		     TRE2    EQU     H'0E20'	    Machine's first board here
    57		     TRE3    EQU     H'0E30'	    PLY 1 location
    58		     TRE5    EQU     H'0E50'	    PLY 3 location
    59		     PLMD    EQU     H'0E5B'	    Used for temp store of player's mov
    60		     PLMV    EQU     H'0ED0'	    Overlay region used for player's mo
    61		     PLMF    EQU     H'0EE0'	       and move numbers
    62		     SCOR    EQU     H'0EF0'	    28 bytes for scores
    63		     XPOS    EQU     H'0F0C'	    XPOSITION(CURSOR)
    64		     YPOS    EQU     H'0F0F'	    YPOSITION(CURSOR)
    65		     OBJ1    EQU     H'0F10'	    Board 2, thru H'0FAF'
    66		     MOBS    EQU     H'0FB0'	     Mobility and DJ flags (14 bytes)
    67		     RGSV    EQU     H'0FC1'	    Register save start (int. update)
    68		     *
    69		     *Scratch pad assignments
    70		     TEMP   EQU     H'8'
    71		     J	    EQU     H'9'
    72		     HU     EQU     H'A'
    73		     HL     EQU     H'B'
    74		     PLOC   EQU     O'3'	    LISU value for ACTIVE and PASSIVE
    75		     KLOC   EQU     O'4'	    LISU value for KING's and special d
    76		     ELOC   EQU     O'5'	    LISU value for EMPTY's area
    77		     ISA    EQU     O'30'	    ISAR value for active area
    78		     ISP    EQU     O'34'	    ISAR value for passive
    79		     ISK    EQU     O'40'	    ISAR value for kings
    80		     ACTM   EQU     O'46'	    Location of Active material count
    81		     PASM   EQU     O'47'	    Location of Passive material count
    82		     ISE0   EQU     O'50'	    ISAR value for guard byte
    83		     ISE    EQU     O'51'	    ISAR value for empty (with offset)
    84		     *Mimimum ply depths
    85		     PLYT   EQU     H'FD'	    Ply depth for Robot Tom (stored as
    86		     PLYD   EQU     H'FC'	    Ply depth for Robot Dick
    87		     PLYH   EQU     H'FB'	    Ply depth for Robot Harry
    88		     *SPECIAL CONSTANTS
    89		     MAT     EQU     0		     As used in EVAL
    90		     POT     EQU     6
    91		     X	     EQU     H'1'
    92		     Y	     EQU     H'2'
    93		     VX      EQU     H'3'
    94		     VY      EQU     H'4'
    95		     CHT     EQU     H'3'    CURSOR HEIGHT
    96		     YTST    EQU     H'9'
    97		     XZOP    EQU     H'34'   Line for restorre of X zoom
    98		     MAXY    EQU     H'4D'   MAX Y COORD (=H'4F'-CHT)
    99		     *Linkage locations
   100		     PMOV    EQU     H'10F5'	     Player's move
   101		     DJMP    EQU     H'120E'	     Jump again entry
   102		     WMC     EQU     H'122B'	     Write message
   103		     BORD    EQU     H'1313'	     Normal redo of board
   104		     MWAD    EQU     H'1634'
   105		     ENIN    EQU     H'165C'
   106		     DAI     EQU     H'1679'
   107		     SHOW    EQU     H'1721'	     Debugging aid to show board
   108		       ORG  H'1790' SELE JUMP
   109		     *-*-*-
   110 1790 4B	     SELE    LR      A,HL
   111 1791 14		     SR      4
   112 1792 25 02	     CI      H'2'
   113 1794 94 07	     BNZ     SEL2
   114 1796 28 17 21	     PI      SHOW
   115 1799 28 1F 32	     PI      WAST	     Debugging show board
   116 179C 63	     SEL2    LISU    PLOC
   117 179D 68		     LISL    0
   118 179E 10		     LR      DC,H
   119 179F 7C		     LIS     H'C'	     To get MOVE byte
   120 17A0 8E		     ADC
   121 17A1 16		     LM
   122 17A2 50		     LR      0,A	     Save it temporarily
   123 17A3 F0		     NS      0		     To set status byte
   124 17A4 94 04	     BNZ     SEL3
   125 17A6 29 1A 8D	     JMP     NEXT	     To get next MOVE byte
   126 17A9 70	     SEL3    CLR
   127 17AA 18		     COM		     -1 in A
   128 17AB 8E		     ADC		     Get back to move byte
   129 17AC C0		     AS      0
   130 17AD F0		     NS      0		     Remove right-most on-bit
   131 17AE 17		     ST			     Put remaining bits back (and index
   132 17AF E0		     XS      0		     This gets the extracted bit
   133 17B0 56		     LR      6,A	     Save it in 6
   134 17B1 16		     LM			     Now get the byte designation
   135 17B2 55	     SEL4    LR      5,A
   136 17B3 12		     SR      1
   137 17B4 12		     SR      1
   138 17B5 21 03	     NI      H'3'	     Separate the byte indicator part
   139 17B7 54		     LR      4,A	     Save it in 4
   140 17B8 45		     LR      A,5
   141 17B9 21 13	     NI      H'13'	     Separate the JUMP bit and the dire
   142 17BB 55		     LR      5,A	     Save them in 5
   143 17BC 20 18    DELE    LI      ISA	     Process Active and Kings for sourc
   144 17BE C4		     AS      4		     Add byte #
   145 17BF 0B		     LR      IS,A	     Get to initial byte
   146 17C0 4C		     LR      A,S
   147 17C1 53		     LR      3,A
   148 17C2 E6		     XS      6		     Delete moving piece
   149 17C3 5C		     LR      S,A	     from byte
   150 17C4 64		     LISU    KLOC	     To get to corresponding KING byte
   151 17C5 4C		     LR      A,S
   152 17C6 F6		     NS      6		     Was the piece a king?
   153 17C7 84 04	     BZ      DEL2
   154 17C9 EC		     XS      S		     If it was delete king bit
   155 17CA 5C		     LR      S,A
   156 17CB 77		     LIS     H'7'	     Non-zero in 2 for king
   157 17CC 52	     DEL2    LR      2,A	     0 for man, 7 for king, (later 1 fo
   158 17CD 63		     LISU    PLOC	     Back to active section
   159		     *Now locate captured piece if jump or find destination in normal m
   160 17CE 46		     LR      A,6	     Recall MOVE bit
   161 17CF 14		     SR      4
   162 17D0 84 10	     BZ      INRH	     Bit was in right half of byte
   163 17D2 53	     INLH    LR      3,A	     Save partially shifted MOVE bit
   164 17D3 71		     LIS     H'1'	     Get direction
   165 17D4 F5		     NS      5		     To test right-most bit
   166 17D5 84 04	     BZ      INL2	     RF or LB move where 4 shift is cor
   167 17D7 43		     LR      A,3
   168 17D8 12		     SR      1		     LF and LB require an additional sh
   169 17D9 53		     LR      3,A
   170 17DA 72	     INL2    LIS     H'2'	     Now test for fore or aft
   171 17DB F5		     NS      5
   172 17DC 84 13	     BZ      BOTH	     Forward move, no byte shift needed
   173 17DE 4E		     LR      A,D	     Only to decrement ISAR
   174 17DF 90 10    INL3    BR      BOTH
   175		     *
   176 17E1 46	     INRH    LR      A,6	     Get MOVE bit again
   177 17E2 15		     SL      4		     Left shift if in right half
   178 17E3 53		     LR      3,A	     Save partially shifted MOVE bit
   179 17E4 71		     LIS     H'1'
   180 17E5 F5		     NS      5		     Get direction
   181 17E6 94 04	     BNZ     INR2	     LF or LB where 4 shift is correct
   182 17E8 43		     LR      A,3
   183 17E9 13		     SL      1		     RF and RB require an additional sh
   184 17EA 53		     LR      3,A
   185 17EB 72	     INR2    LIS     H'2'	     Now test fore and aft
   186 17EC F5		     NS      5
   187 17ED 94 02	     BNZ     BOTH
   188 17EF 4D		     LR      A,I	     Only to increment ISAR
   189 17F0 45	     BOTH    LR      A,5	     Now is this a jump or a normal mov
   190		     *ISAR still points to active region but may designate
   191		     *an empty square or the capture square
   192 17F1 14		     SR      4		     Set status for jump bit
   193 17F2 94 04	     BNZ     JUMP
   194 17F4 29 18 C1	     JMP     NORM	     It's a normal move
   195 17F7 0A	     JUMP    LR      A,IS
   196 17F8 24 04	     AI      H'4'	     To get to passive pieces
   197 17FA 0B		     LR      IS,A
   198 17FB 4C		     LR      A,S
   199 17FC E3		     XS      3		     Remove captured piece
   200 17FD 5C		     LR      S,A
   201 17FE 0A		     LR      A,IS
   202 17FF 24 04	     AI      H'4'	     Corresponding king location
   203 1801 0B		     LR      IS,A
   204 1802 4C		     LR      A,S	     Get byte
   205 1803 F3		     NS      3		     Is the piece a king?
   206 1804 84 07	     BZ      JUM1	     No
   207 1806 EC		     XS      S		     Yes, Remove it
   208 1807 5C		     LR      S,A
   209 1808 72		     LIS     H'2'
   210 1809 18		     COM		     Fast -3
   211 180A 90 03	     BR      JU11
   212 180C 71	     JUM1    LIS     H'1'
   213 180D 18		     COM		     Fast -2
   214 180E 50	     JU11    LR      0,A
   215 180F 20 27	     LI      PASM
   216 1811 0B		     LR      IS,A
   217 1812 4C		     LR      A,S
   218 1813 C0		     AS      0
   219 1814 5C		     LR      S,A
   220 1815 20 18    JU12    LI      ISA	     Back to moved-from location
   221 1817 C4		     AS      4		     Byte number is in 4
   222 1818 0B		     LR      IS,A
   223 1819 72		     LIS     H'2'
   224 181A F5		     NS      5		     Test for fore or aft
   225 181B 84 04	     BZ      JUMA	     Fore move
   226 181D 4E		     LR      A,D	     Decrement ISAR (destination always
   227 181E 90 02	     BR      JUMB
   228 1820 4D	     JUMA    LR      A,I	     Increment ISAR
   229 1821 0A	     JUMB    LR      A,IS	     Get the destination byte off-set
   230 1822 24 E8	     AI      H'E8'	     by subtracting O'30' from ISAR val
   231 1824 54		     LR      4,A	     needed if there is a continuation
   232 1825 71		     LIS     H'1'	     Get direction
   233 1826 F5		     NS      5		     Test for right or left
   234 1827 46		     LR      A,6	     Get original piece location
   235 1828 84 04	     BZ      JUM2	     0 for R move, ≠0 for L move
   236 182A 12		     SR      1		     Left moves involve a right shift o
   237 182B 90 02	     BR      JUM3
   238 182D 13	     JUM2    SL      1		     Right moves involve a left shift o
   239 182E 53	     JUM3    LR      3,A	     Save bit byte in 3, freeing 6 for
   240 182F 51		     LR      1,A	     As mask in FIND for continuation
   241 1830 4C		     LR      A,S
   242 1831 E3		     XS      3		     Set piece down
   243 1832 5C		     LR      S,A
   244 1833 70		     CLR
   245 1834 C2		     AS      2		     Was the piece a king?
   246 1835 84 05	     BZ      JUMC	     No, might be a promotion
   247 1837 70		     CLR
   248 1838 50		     LR      0,A	     Temporary record of promotion cred
   249 1839 90 1A	     BR     JUM6	     Already a king so no promotion
   250 183B 72	     JUMC    LIS     H'2'
   251 183C F5		     NS      5		     Which side is active
   252 183D 0A		     LR      A,IS
   253 183E 84 09	     BZ      JUM4	     0 if forward
   254 1840 25 18	     CI      O'30'	     Is this byte 0?
   255 1842 94 27	     BNZ     JU71	     No, so no promotion
   256 1844 7F		     LIS     H'F'	     and the king row?
   257 1845 15		     SL      4
   258 1846 90 06	     BR      JUM5	     Promotion indicated, no double jum
   259 1848 25 1B    JUM4    CI      O'33'	     Is this byte 3?
   260 184A 94 1F	     BNZ     JU71	     No, so no promotion
   261 184C 7F		     LIS     H'F'	     and the king row?
   262 184D F3	     JUM5    NS      3
   263 184E 84 1B	     BZ      JU71	     No
   264 1850 71		     LIS     H'1'	     1 for promotion
   265 1851 52		     LR      2,A	     It was 0
   266 1852 50		     LR      0,A	     Credit for promotion
   267 1853 56		     LR      6,A	     Used in FIND for no continuation
   268 1854 64	     JUM6    LISU    KLOC	     Get to King position
   269 1855 4C		     LR      A,S
   270 1856 C3		     AS      3		     Put down the king
   271 1857 5C		     LR      S,A
   272 1858 70		     CLR
   273 1859 E0		     XS      0		     Was there a promotion?
   274 185A 84 0F	     BZ     JU71	     No
   275 185C 64		     LISU    4
   276 185D 6E		     LISL    6
   277 185E 4C		     LR      A,S
   278 185F 1F		     INC		     Add for promotion
   279 1860 5C		     LR      S,A
   280 1861 90 05	     BR      JUM9	     Can be no continuation if promotio
   281 1863 70	     JUM7    CLR
   282 1864 E0		     XS      0		     Should we check for a double jump?
   283 1865 84 04	     BZ     JU71	     Yes, a 0 means no promotion
   284 1867 29 18 F1 JUM9    JMP    FORE
   285		     * Set up conditions to try to find a continuation
   286 186A 4B	     JU71    LR      A,HL
   287 186B 14		     SR      4
   288 186C 25 0C	     CI      H'C'	     Is there room?
   289 186E 91 F8	     BM      JUM9	     No
   290 1870 25 01	     CI      H'1'	     Is this a player's board?
   291 1872 94 0C	     BNZ     JU78	     No
   292 1874 2A 0E D0	     DCI     PLMV	     Yes, restart PLMV
   293 1877 70		     CLR
   294 1878 17		     ST
   295 1879 2A 0C 2F	     DCI     CFLG	     Zero this as
   296 187C 17		     ST			     safety precaution
   297 187D 90 28	     BR      JU77	     and keep to this level
   298 187F 10	     JU78    LR      DC,H
   299 1880 20 1C	     LI      H'1C'	     Get to byte location
   300 1882 8E		     ADC		     in the "passed board" position
   301 1883 43		     LR      A,3	     Save destination info
   302 1884 17		     ST			     the move byte
   303 1885 44		     LR      A,4
   304 1886 17		     ST			     and the byte #
   305 1887 70		     CLR
   306 1888 18		     COM		     and a flag of -1
   307 1889 17		     ST			     in the ACTM position
   308 188A 42		     LR      A,2	     and # of moves in PASM
   309 188B 17		     ST
   310 188C 4B		     LR      A,HL
   311 188D 14		     SR      4
   312 188E 2A 0E F0	     DCI     SCOR	     Advance score
   313 1891 24 FE	     AI      -H'2'	     Scor not saved for HL=1
   314 1893 13		     SL      1
   315 1894 8E		     ADC		     from current board
   316 1895 0E		     LR      Q,DC
   317 1896 2C		     XDC
   318 1897 0F		     LR      DC,Q
 **OPERATOR SYNTAX    LINE #   319
   319
   320 1898 74		     LIS     H'4'
   321 1899 8E		     ADC
   322 189A 2C		     XDC
   323 189B 16		     LM
   324 189C 2C		     XDC
   325 189D 17		     ST
   326 189E 2C		     XDC
   327 189F 16		     LM
   328 18A0 2C		     XDC
   329 18A1 17		     ST
   330 18A2 72		     LIS     H'2'	     Copy data two blocks forward
   331 18A3 15		     SL      4
   332 18A4 CB		     AS      HL
   333 18A5 5B		     LR      HL,A
   334 18A6 10	     JU77    LR      DC,H
   335 18A7 63		     LISU    PLOC	     SC to RA direct
   336 18A8 68		     LISL    0
   337 18A9 4D	     JU72    LR      A,I
   338 18AA 17		     ST
   339 18AB 8F FD	     BR7     JU72
   340 18AD 4D		     LR      A,I
   341 18AE 17		     ST
   342 18AF 64		     LISU    KLOC
   343 18B0 4D	     JU73    LR      A,I
   344 18B1 17		     ST
   345 18B2 8F FD	     BR7     JU73
   346 18B4 4D		     LR      A,I
   347 18B5 17		     ST
   348 18B6 28 1E FF	     PI      EMPT	     Re-do to reflect changes
   349 18B9 43		     LR      A,3	     Save destination
   350 18BA 51		     LR      1,A	     as mask for FIND
   351 18BB 70		     CLR
   352 18BC 52		     LR      2,A
   353 18BD 56		     LR      6,A
   354 18BE 29 1B 08	     JMP     RFJ	     Find continuations if any
   355		     * NORM  FORE
   356		     *Now make normal move
   357 18C1 10	     NORM    LR      DC,H	     Back in step
   358 18C2 70		     CLR
   359 18C3 50		     LR      0,A	     Flag for no promotion
   360 18C4 63		     LISU    PLOC	     Get back to Active pieces
   361 18C5 4C		     LR      A,S	     LISL still OK
   362 18C6 C3		     AS      3
   363 18C7 5C		     LR      S,A	     Put in moved piece
   364 18C8 42		     LR      A,2	     Was it a king
   365 18C9 F2		     NS      2
   366 18CA 94 18	     BNZ     NOM6	     Yes so don't promote but do put ki
   367 18CC 72		     LIS     H'2'
   368 18CD F5		     NS      5		     Test for direction
   369 18CE 0A		     LR      A,IS
   370 18CF 84 09	     BZ      NOM4	     Is it going forward?
   371 18D1 25 18	     CI      O'30'	     Did it get to the byte 0?
   372 18D3 94 1D	     BNZ     FORE	     No
   373 18D5 7F		     LIS     H'F'	    and in king row?
   374 18D6 15		     SL      4
   375 18D7 90 06	     BR      NOM5	     Mark for promotion
   376 18D9 25 1B    NOM4    CI      O'33'	     Did it get to byte 3?
   377 18DB 94 15	     BNZ     FORE	     No
   378 18DD 7F		     LIS     H'F'	     and in king row?
   379 18DE F3	     NOM5    NS      3
   380 18DF 84 11	     BZ      FORE	     No
   381 18E1 71		     LIS     H'1'
   382 18E2 50		     LR      0,A	     A promotion flag
   383 18E3 64	     NOM6    LISU    KLOC	     Now get to king byte
   384 18E4 4C		     LR      A,S	     Get corresponding king byte for de
   385 18E5 C3		     AS      3		     Insert king
   386 18E6 5C		     LR      S,A	     And replace byte
   387 18E7 70		     CLR
   388 18E8 C0		     AS      0
   389 18E9 84 07	     BZ      FORE
   390 18EB 20 26	     LI      ACTM	     Get to active  material location
   391 18ED 0B		     LR      IS,A
   392 18EE 4C		     LR      A,S
   393 18EF 1F		     INC		     Credit for promotion
   394 18F0 5C		     LR      S,A
   395 18F1 2A 0C 2F FORE    DCI     CFLG	     Have we compacted?
   396 18F4 0E		     LR      Q,DC
   397 18F5 16		     LM
   398 18F6 50		     LR      0,A	     Save value to add
   399 18F7 0F		     LR      DC,Q
   400 18F8 70		     CLR		     and clear
   401 18F9 17		     ST
   402 18FA 4B		     LR      A,HL	     Where are we?
   403 18FB 14		     SR      4
   404 18FC 25 01	     CI      H'1'
   405 18FE 94 04	     BNZ     FOR8
   406 1900 29 19 97	     JMP     FOR5	     Player's move has been made
   407 1903 47	     FOR8    LR      A,7
   408 1904 18		     COM		     Change color
   409 1905 57		     LR      7,A
   410 1906 71		     LIS     H'1'
   411 1907 15		     SL      4
   412 1908 CB		     AS      HL
   413 1909 5B		     LR      HL,A
   414 190A 10		     LR      DC,H	     GET back in step
   415 190B 28 1A 1E	     PI      SCRA	     Prepare for normal advance
   416 190E 4B		     LR      A,HL	     Can we advance score?
   417 190F 14		     SR      4
   418 1910 25 03	     CI      H'3'	     Note HL has already been advanced
   419 1912 91 0D	     BM      FOR2	     Advance score normally
   420 1914 94 60	     BNZ     FOR4	     Special case
   421 1916 2A 0E F2	     DCI     SCOR+2
   422 1919 20 C1	     LI      H'C1'
   423 191B 17		     ST
   424 191C 1F		     INC
   425 191D 17		     ST
   426 191E 90 56	     BR      FOR4	     May still be a special case
   427 1920 24 FE    FOR2    AI      -H'2'	     Scor not saved for HL=10
   428 1922 13		     SL      1		     Scores take 2 bytes each so *2
   429 1923 2A 0E F0	     DCI     SCOR
   430 1926 8E		     ADC		     Current location
   431 1927 0E		     LR      Q,DC
   432 1928 2C		     XDC
   433 1929 0F		     LR      DC,Q
   434 192A 73		     LIS     H'3'
   435 192B 18		     COM		     Fast -H'4'
   436 192C 8E		     ADC		     Get to earlier entry
   437 192D 16		     LM			     Copy it
   438 192E 2C		     XDC
   439 192F 17		     ST
   440 1930 2C		     XDC
   441 1931 25 C1	     CI      H'C1'
   442 1933 16		     LM
   443 1934 2C		     XDC
   444 1935 94 04	     BNZ     FOR7
   445 1937 1F		     INC		     Add 2 for win or lose reporting
   446 1938 1F		     INC
   447 1939 C0		     AS      0
   448 193A 17	     FOR7    ST
   449		     * Compacting routine to save space. Note this
   450		     * complicates reporting of win and lose distances.
   451 193B 4B		     LR      A,HL
   452 193C 14		     SR      4
   453 193D 25 06	     CI      H'6'	     Room to compact?
   454 193F 81 32	     BP      FOR3	     No, let player make his next move
   455 1941 24 FC	     AI      -H'4'	     2 back in MOB
   456 1943 2A 0F B0	     DCI     MOBS	     Compacting possible only if but
   457 1946 8E		     ADC		     single moves available for 2
   458 1947 16		     LM			     successive moves
   459 1948 25 01	     CI      H'1'
   460 194A 94 27	     BNZ     FOR3	     More than 1 move
   461 194C 16		     LM
   462 194D 25 01	     CI      H'1'
   463 194F 94 22	     BNZ     FOR3	     More than 1 move
   464 1951 4B		     LR      A,HL
   465 1952 14		     SR      4
   466 1953 24 FC	     AI      -H'4'	     Back 2 levels
   467 1955 13		     SL      1
   468 1956 2A 0E F0	     DCI     SCOR
   469 1959 8E		     ADC
   470 195A 16		     LM
   471 195B 25 C1	     CI      H'C1'
   472 195D 94 06	     BNZ     FORY
   473 195F 0E		     LR      Q,DC
   474 1960 72		     LIS     H'2'
   475 1961 88		     AM
   476 1962 0F		     LR      DC,Q
   477 1963 17		     ST
   478 1964 71	     FORY    LIS     H'1'
   479 1965 18		     COM		     Back up 2 levels
   480 1966 15		     SL      4
   481 1967 CB		     AS      HL
   482 1968 5B		     LR      HL,A
   483 1969 2A 0C 2F	     DCI     CFLG
   484 196C 72		     LIS     H'2'
   485 196D 17		     ST			     Set flag for SCOR check
   486 196E 10		     LR      DC,H	     GET back in step
   487 196F 28 1A 1E	     PI      SCRA	     Prepare for normal advance
   488 1972 29 1A EB FOR3    JMP     FIND	     Go forward normally
   489 1975 2A 0C 2A FOR4    DCI     SELX
   490 1978 0E		     LR      Q,DC
   491 1979 16		     LM
   492 197A 25 01	     CI      H'1'
   493 197C 91 F5	     BM      FOR3	     Normal play
   494 197E 1F		     INC		     Book or random move has been made
   495 197F 0F		     LR      DC,Q
   496 1980 17		     ST			     so count this as a move
   497 1981 70		     CLR		     Clear start of PLMV list for
   498 1982 2A 0E D0	     DCI     PLMV	     listing player's possible moves
   499 1985 17		     ST
   500 1986 10		     LR      DC,H
   501 1987 2C		     XDC
   502 1988 2A 0E 10	     DCI     TREE	     Prepare for TRAN
   503 198B 11		     LR      H,DC
   504 198C 71		     LIS     H'1'
   505 198D 15		     SL      4
   506 198E 62		     LISU    2
   507 198F 68		     LISL    0
   508 1990 5C		     LR      S,A
   509 1991 28 43 CD	     PI      TRAN
   510 1994 29 1A EB	     JMP     FIND	     FIND exits to PMOV when HL is H'10
   511 1997 28 13 13 FOR5    PI      BORD	     Show board after players move
   512 199A 74		     LIS     H'4'	     "MY MOVE"
   513 199B 50		     LR      0,A
   514 199C 28 12 2B	     PI      WMC
   515 199F 2A 0E F0	     DCI     SCOR	     Start scores off at H'C000'
   516 19A2 20 C1	     LI      H'C1'	     so that CM's will always work
   517 19A4 17		     ST
   518 19A5 17		     ST
   519 19A6 17		     ST
   520 19A7 1F		     INC
   521 19A8 17		     ST
   522 19A9 47		     LR      A,7
   523 19AA 18		     COM		Change color
   524 19AB 57		     LR      7,A
   525 19AC 71		     LIS     H'1'
   526 19AD 15		     SL      4
   527 19AE CB		     AS      HL
   528 19AF 5B		     LR      HL,A
   529 19B0 10		     LR      DC,H	     Advance H
   530 19B1 28 1A 1E	     PI      SCRA	     SC to RA with sides reversed
   531 19B4 10		     LR      DC,H
   532 19B5 28 1A 0D	     PI      RASC	     RA to SC preparing for a normal mo
   533 19B8 2A 0C 2A	     DCI     SELX
   534 19BB 0E		     LR      Q,DC
   535 19BC 16		     LM
   536 19BD 1F		     INC		     Add 1 to move count
   537 19BE 0F		     LR      DC,Q
   538 19BF 17		     ST
   539 19C0 25 01	     CI      H'1'
   540 19C2 84 04	     BZ      FOR6	     Use stored move
   541 19C4 29 1A EB	     JMP     FIND	     Go find normal reply
   542 19C7 62	     FOR6    LISU    2		     Get random number
   543 19C8 6D		     LISL    5
   544 19C9 73		     LIS     H'3'
   545 19CA FC		     NS      S		     0 to 3 random number
   546 19CB 50		     LR      0,A
   547 19CC 12		     SR      1
   548 19CD 51		     LR      1,A	     0 to 1 random number
   549 19CE 71		     LIS     H'1'
   550 19CF F0		     NS      0
   551 19D0 50		     LR      0,A	     2nd 0 to 1 random number
   552		     * Machine to make 2nd move from book
   553 19D1 2A 0C 25	     DCI     BKMV	     Get stored move munber
   554 19D4 16		     LM
   555 19D5 13		     SL      1		     X2, 2 entries for each input move
   556 19D6 C0		     AS      0		     Random choice between them
   557 19D7 2A 1F 24	     DCI     BOK2	     Stored table of book replies
   558 19DA 8E		     ADC
   559 19DB 16		     LM			     Get reply number
   560 19DC 50		     LR      0,A
   561 19DD 70		     CLR		     Use second number to select which
   562 19DE E1		     XS      1
   563 19DF 40		     LR      A,0
   564 19E0 84 02	     BZ      BMV2
   565 19E2 14		     SR      4
   566 19E3 21 07    BMV2    NI      H'7'
   567 19E5 50		     LR      0,A	     The final selection
   568 19E6 2A 1A 08	     DCI     REDM	     Possible Red moves
   569 19E9 16	     BM17    LM			     Get byte record
   570 19EA 51		     LR      1,A
   571 19EB 41	     BM18    LR      A,1
   572 19EC F1		     NS      1
   573 19ED 94 04	     BNZ     BM19	     Is this byte exhausted?
   574 19EF 16		     LM			     Step over byte info
   575 19F0 90 F8	     BR      BM17	     Go to next byte record
   576 19F2 52	     BM19    LR      2,A
   577 19F3 24 FF	     AI      H'FF'	     Subtract 1
   578 19F5 F1		     NS      1
   579 19F6 51		     LR      1,A	     byte less rightmost bit
   580 19F7 E2		     XS      2		     This leaves 1 bit in A
   581 19F8 30		     DS      0
   582 19F9 81 F1	     BP      BM18
   583 19FB 56		     LR      6,A	     Save the byte bit
   584 19FC 16		     LM			     Get the byte info
   585 19FD 54		     LR      4,A	     The byte indicator
   586 19FE 10		     LR      DC,H
   587 19FF 7C		     LIS     H'C'
   588 1A00 8E		     ADC
   589 1A01 46		     LR      A,6
   590 1A02 17		     ST
   591 1A03 44		     LR      A,4
   592 1A04 17		     ST
   593 1A05 29 17 90	     JMP     SELE
   594		     *-*-*- Initial moves for red
   595 1A08 07	     REDM   DC	    B'00000111'      3 pieces
   596 1A09 0A		    DC	    B'00001010'      Byte 2, RB
   597 1A0A 0F		    DC	    B'00001111'      4 pieces
   598 1A0B 0B		    DC	    B'00001011'      Byte 2, LB
   599 1A0C 00		    DC	    H'00'
   600		     * RASC SCRA FKT STMV
   601		     *-*-*- RASC RAM to SC transfer
   602 1A0D 08	     RASC    LR      K,P	     RAM to SC
   603 1A0E 63		     LISU    PLOC	    ←SC buffer with Active and Passive
   604 1A0F 68		     LISL    0
   605 1A10 16	     RAS2    LM
   606 1A11 5D		     LR      I,A
   607 1A12 8F FD	     BR7     RAS2
   608 1A14 16		     LM
   609 1A15 5D		     LR      I,A
   610 1A16 64		     LISU    KLOC
   611 1A17 16	     RAS3    LM
   612 1A18 5D		     LR      I,A
   613 1A19 8F FD	     BR7     RAS3
   614 1A1B 16		     LM
   615 1A1C 5D		     LR      I,A
   616 1A1D 0C		     PK
   617		     *	SCRA  SC to RAM with side reversal
   618 1A1E 08	     SCRA    LR      K,P	     SC to RAM for side reversal
   619 1A1F 63		     LISU    PLOC
   620 1A20 6C		     LISL    4
   621 1A21 78		     LIS     H'8'
   622 1A22 50		     LR      0,A
   623 1A23 4D	     SCR1    LR      A,I
   624 1A24 17		     ST
   625 1A25 30		     DS      0
   626 1A26 94 FC	     BNZ     SCR1
   627 1A28 64		     LISU    KLOC
   628 1A29 68		     LISL    0
   629 1A2A 74		     LIS     H'4'
   630 1A2B 50		     LR      0,A
   631 1A2C 4D	     SCR2    LR      A,I
   632 1A2D 17		     ST
   633 1A2E 30		     DS      0
   634 1A2F 94 FC	     BNZ     SCR2
   635 1A31 70		     CLR
   636 1A32 17		     ST
   637 1A33 17		     ST
   638 1A34 6F		     LISL    7
   639 1A35 4E		     LR      A,D
   640 1A36 17		     ST
   641 1A37 4E		     LR      A,D
   642 1A38 17		     ST
   643 1A39 0C		     PK
   644		     *-*-*- Test if Kings only can move
   645 1A3A 08	     FKT     LR      K,P
   646 1A3B 70		     CLR
   647 1A3C C7		     AS      7
   648 1A3D 94 09	     BNZ     FK1	     Only kings in this direction
   649 1A3F 70	     FKT2    CLR
   650 1A40 E3		     XS      3
   651 1A41 0C		     PK			     Normal pieces OK
   652 1A42 08	     BKT     LR      K,P
   653 1A43 70		     CLR
   654 1A44 C7		     AS      7		   Test sides for backward move
   655 1A45 94 F9	     BNZ     FKT2	      NORMAL pieces can move
   656 1A47 72	     FK1     LIS     H'2'
   657 1A48 15		     SL      4
   658 1A49 C4		     AS      4
   659 1A4A 0B		     LR      IS,A	     KINGS only can move
   660 1A4B 4C		     LR      A,S
   661 1A4C F3		     NS      3
   662 1A4D 53		     LR      3,A
   663 1A4E 0C		     PK
   664		     *Subroutine to add to MOBILITY, and to store MOVE and FLAG bytes i
   665 1A4F 08	     STMV    LR      K,P
   666 1A50 4B		     LR      A,HL
   667 1A51 14		     SR      4
   668 1A52 25 01	     CI      H'01'	     Is this the player's board
   669 1A54 94 19	     BNZ     STM3	     No
   670 1A56 2A 0E D0	     DCI     PLMV	     Player's moves stored separately
   671 1A59 70	     STM0    CLR
   672 1A5A 8C		     XM
   673 1A5B 84 04	     BZ      STM1	     Find empty space
   674 1A5D 16		     LM			     Skip info space
   675 1A5E 90 FA	     BR      STM0	     Try again
   676 1A60 70	     STM1    CLR		     Back up
   677 1A61 18		     COM
   678 1A62 8E		     ADC
   679 1A63 43		     LR      A,3
   680 1A64 17		     ST
   681 1A65 44		     LR      A,4
   682 1A66 13		     SL      1
   683 1A67 13		     SL      1
   684 1A68 C5		     AS      5
   685 1A69 17		     ST
   686 1A6A 70		     CLR
   687 1A6B 17		     ST			     Store 0 as stop
   688 1A6C 90 10	     BR      STM2
   689 1A6E 70	     STM3    CLR
   690 1A6F E2		     XS      2		     To set status byte
   691 1A70 94 0C	     BNZ    STM2	    One is already stored
   692 1A72 10		     LR      DC,H	     Get back in step
   693 1A73 7C		     LIS     H'C'	     To get to MOVE byte
   694 1A74 8E		     ADC
   695 1A75 43	     STM4    LR      A,3	     Get move byte
   696 1A76 17		     ST			     Store it in RAM
   697 1A77 44		     LR      A,4	     Get the byte pointer
   698 1A78 13		     SL      1
   699 1A79 13		     SL      1
   700 1A7A C5		     AS      5
   701 1A7B 17		     ST			     Put this into RAM
   702 1A7C 10		     LR      DC,H	     May be necessary
   703 1A7D 70	     STM2    CLR
   704 1A7E 50		     LR      0,A	     To accumulate count
   705 1A7F 43		     LR      A,3
   706 1A80 30	     STM5    DS      0
   707 1A81 24 FF	     AI      H'FF'
   708 1A83 F3		     NS      3		     Removes rightmost bit
   709 1A84 53		     LR      3,A
   710 1A85 94 FA	     BNZ     STM5
   711 1A87 40		     LR      A,0
   712 1A88 18		     COM
   713 1A89 1F		     INC
   714 1A8A C2		     AS      2		     Add in previous count
   715 1A8B 52		     LR      2,A
   716 1A8C 0C		     PK
   717		     * NEXT  FIND  RFJ	LFJ  RBJ  LBJ
   718 1A8D 28 1E FF NEXT    PI      EMPT	     Needs redoing if came to SELE via
   719 1A90 10		     LR      DC,H
   720 1A91 4B		     LR      A,HL
   721 1A92 14		     SR      4
   722 1A93 25 03	     CI      H'3'
   723 1A95 81 1E	     BP      NEXX	     Can not be a continuation
   724 1A97 73		     LIS      H'3'	     Look to earlier board data
   725 1A98 18		     COM		     Fast -4
   726 1A99 8E		     ADC
   727 1A9A 16		     LM
   728 1A9B 51		     LR      1,A	     Get move byte just in case
   729 1A9C 16		     LM
   730 1A9D 54		     LR      4,A	     and byte info
   731 1A9E 70		     CLR
   732 1A9F 52		     LR      2,A
   733 1AA0 8C		     XM			     Now look at ACTM
   734 1AA1 81 12	     BP      NEXX	     Not a continuation board
   735 1AA3 10		     LR      DC,H
   736 1AA4 7D		     LIS     H'D'
   737 1AA5 8E		     ADC
   738 1AA6 73		     LIS     H'3'	     Get last used direction
   739 1AA7 8A		     NM
   740 1AA8 1F		     INC
   741 1AA9 25 03	     CI      H'3'
   742 1AAB 91 15	     BM      NEXY	     Last direction used
   743 1AAD 55		     LR      5,A
   744 1AAE 70		     CLR
   745 1AAF 18		     COM
   746 1AB0 56		     LR      6,A	     Set continuation flag
   747 1AB1 29 1B 63	     JMP     RBJ0
   748 1AB4 10	     NEXX    LR      DC,H
   749 1AB5 7D		     LIS     H'D'	     Last used byte info
   750 1AB6 8E		     ADC
   751 1AB7 16		     LM
   752 1AB8 55		     LR      5,A
   753 1AB9 21 0F	     NI      H'F'
   754 1ABB 1F		     INC
   755 1ABC 50		     LR      0,A
   756 1ABD 25 0F	     CI      H'F'	     Is this the last byte and directio
   757 1ABF 81 04	     BP      NEXA
   758 1AC1 29 1D 31 NEXY    JMP     AFT	     Yes, so back up
   759 1AC4 10	     NEXA    LR      DC,H
   760 1AC5 71		     LIS     H'1'	     Set to 1 for normal back-up
   761 1AC6 56		     LR      6,A
   762 1AC7 70		     CLR
   763 1AC8 18		     COM
   764 1AC9 51		     LR      1,A	     All pieces allowed to move
   765 1ACA 10		     LR      DC,H
   766 1ACB 40		     LR      A,0
   767 1ACC 12		     SR      1
   768 1ACD 12		     SR      1
   769 1ACE 21 03	     NI      H'3'
   770 1AD0 54		     LR      4,A
   771 1AD1 45		     LR      A,5
   772 1AD2 25 0F	     CI      H'F'
   773 1AD4 73		     LIS     H'3'
   774 1AD5 91 0B	     BM      NEXJ	     Jumps required
   775 1AD7 F0		     NS      0
   776 1AD8 55		     LR      5,A
   777 1AD9 84 04	     BZ      NEN0
   778 1ADB 29 1C AA	     JMP     RBN0
   779 1ADE 29 1C 5E NEN0    JMP     RFN
   780 1AE1 F0	     NEXJ    NS      0
   781 1AE2 55		     LR      5,A
   782 1AE3 84 04	     BZ      NEJ0
   783 1AE5 29 1B 63	     JMP     RBJ0
   784 1AE8 29 1B 08 NEJ0    JMP     RFJ
   785		     *We enter here on going forward
   786 1AEB 10	     FIND    LR      DC,H
   787 1AEC 4B		     LR      A,HL
   788 1AED 14		     SR      4
   789 1AEE 25 02	     CI      H'2'
   790 1AF0 94 0B	     BNZ     FIN1
   791 1AF2 7E		     LIS     H'E'	     Compute ACTM+PASM+9
   792 1AF3 8E		     ADC
   793 1AF4 79		     LIS     H'9'	     Constant term
   794 1AF5 88		     AM
   795 1AF6 88		     AM
   796 1AF7 2A 0C 2C	     DCI     AP20	     Used by EVAL to compute MAT
   797 1AFA 17		     ST
   798 1AFB 10		     LR      DC,H
   799 1AFC 28 1A 0D FIN1    PI      RASC	     Get board into SC
   800 1AFF 28 1E FF	     PI      EMPT	     Compute the empty squares
   801 1B02 70		     CLR
   802 1B03 54		     LR      4,A	     Start with byte 0
   803 1B04 52		     LR      2,A	     Mobility count and move-found flag
   804 1B05 56		     LR      6,A	     So all moves will be found
   805 1B06 18		     COM
   806 1B07 51		     LR      1,A	     To find all possible jump moves
   807 1B08 20 18    RFJ     LI      ISA	     Active pieces
   808 1B0A C4		     AS      4		     Add byte off-set
   809 1B0B 0B		     LR      IS,A	     Get to byte
   810 1B0C 4C		     LR      A,S
   811 1B0D F1		     NS      1		     FF if normal, 1 bit only for conti
   812 1B0E 53		     LR      3,A	     3 used to develop final byte
   813 1B0F 28 1A 3A	     PI      FKT	     Any forward moving pieces?
   814 1B12 84 57	     BZ      RBJ	     No, look to backward moving
   815 1B14 20 2A	     LI      ISE+1	     Look to empty squares forward
   816 1B16 C4		     AS      4		     Add byte off-set
   817 1B17 0B		     LR      IS,A	     Destination byte location
   818 1B18 4C		     LR      A,S
   819 1B19 12		     SR      1
   820 1B1A F3		     NS      3
   821 1B1B 53		     LR      3,A	     Only pieces that have place to lan
   822 1B1C 20 1C	     LI      ISP	     Passive pieces
   823 1B1E C4		     AS      4
   824 1B1F 0B		     LR      IS,A
   825 1B20 4D		   LR	   A,I		  Look to RF passive pieces forward
   826 1B21 15		   SL	   4		  In front of left-most bits
   827 1B22 50		   LR	   0,A
   828 1B23 4C		   LR	   A,S
   829 1B24 14		   SR	   4		  In front of right-most bits
   830 1B25 12		   SR	   1
   831 1B26 C0		   AS	   0
   832 1B27 F3		   NS	   3
   833 1B28 53		   LR	   3,A		  Pieces that can jump RF
   834 1B29 84 0C	     BZ      LFJ	  None was found
   835 1B2B 20 01	     LI      H'1'	    The RFJ direction and J indicator
   836 1B2D 15		     SL      4
   837 1B2E 55		     LR      5,A
   838 1B2F 28 1A 4F	     PI      STMV	     Store move byte and info
   839 1B32 70		     CLR
   840 1B33 C6		     AS      6		     Recall indicator
   841 1B34 94 2C	     BNZ     LFJ2
   842 1B36 20 18    LFJ     LI      ISA
   843 1B38 C4		     AS      4		     Add byte off-set
   844 1B39 0B		     LR      IS,A	     Get to initial byte
   845 1B3A 4C		     LR      A,S
   846 1B3B F1		     NS      1		     FF if normal, 1 bit only for conti
   847 1B3C 53		     LR      3,A
   848 1B3D 28 1A 3A	     PI      FKT
   849 1B40 20 2A	     LI      ISE+1	     Empty squares forward
   850 1B42 C4		     AS      4
   851 1B43 0B		     LR      IS,A
   852 1B44 4C		     LR      A,S
   853 1B45 13		     SL      1
   854 1B46 F3		     NS      3
   855 1B47 53		     LR      3,A	     Only pieces that have a place to l
   856 1B48 20 1C	     LI      ISP
   857 1B4A C4		     AS      4
   858 1B4B 0B		     LR      IS,A
   859 1B4C 4D		   LR	   A,I
   860 1B4D 15		   SL	   4
   861 1B4E 13		   SL	   1
   862 1B4F 50		   LR	   0,A
   863 1B50 4C		   LR	   A,S
   864 1B51 14		   SR	   4
   865 1B52 C0		   AS	   0
   866 1B53 F3		   NS	   3
   867 1B54 53		   LR	   3,A		   Pieces that can jump LF
   868 1B55 84 14	     BZ      RBJ
   869 1B57 20 11	     LI      H'11'	     The LFJ direction and J indicator
   870 1B59 55		     LR      5,A
   871 1B5A 28 1A 4F	     PI      STMV
   872 1B5D 70		     CLR
   873 1B5E E6		     XS      6
   874 1B5F 84 0A	     BZ      RBJ
   875 1B61 90 33    LFJ2    BR      RBJ2
   876 1B63 45	     RBJ0    LR      A,5
   877 1B64 25 02	     CI      H'2'	     Which direction, 1, 2, or 3?
   878 1B66 91 30	     BM      LBJ	     It was a 3
   879 1B68 94 CD	     BNZ     LFJ	     It was a 1
   880 1B6A 20 18    RBJ     LI      ISA
   881 1B6C C4		     AS      4		     Add byte off-set
   882 1B6D 0B		     LR      IS,A	     Get to initial byte
   883 1B6E 4C		     LR      A,S
   884 1B6F F1		     NS      1		     FF if normal, 1 bit only for conti
   885 1B70 53		     LR      3,A
   886 1B71 28 1A 42	     PI      BKT	     Any backward moving pieces?
   887 1B74 84 50	     BZ      FJ1	    No
   888 1B76 20 28	     LI      ISE-1	     Look to empty squares backward
   889 1B78 C4		     AS      4
   890 1B79 0B		     LR      IS,A
   891 1B7A 4C		     LR      A,S
   892 1B7B 12		     SR      1
   893 1B7C F3		     NS      3
   894 1B7D 53		     LR      3,A
   895 1B7E 20 1B	     LI      ISP-1	     Look to passive pieces backward
   896 1B80 C4		     AS      4
   897 1B81 0B		     LR      IS,A
   898 1B82 4D		   LR	   A,I
   899 1B83 15		   SL	   4
   900 1B84 50		   LR	   0,A
   901 1B85 4C		   LR	   A,S
   902 1B86 14		   SR	   4
   903 1B87 12		   SR	   1
   904 1B88 C0		   AS	   0
   905 1B89 F3		   NS	   3
   906 1B8A 53		   LR	   3,A		   Pieces that can jump RB
   907 1B8B 84 0B	     BZ      LBJ
   908 1B8D 20 12	     LI      H'12'	     The RBJ direction and J indicator
   909 1B8F 55		     LR      5,A
   910 1B90 28 1A 4F	     PI      STMV
   911 1B93 70		     CLR
   912 1B94 E6		     XS      6
   913 1B95 94 2C    RBJ2    BNZ     LBJ2
   914 1B97 20 18    LBJ     LI      ISA
   915 1B99 C4		     AS      4		     Add byte off-set
   916 1B9A 0B		     LR      IS,A	     Get to initial byte
   917 1B9B 4C		     LR      A,S
   918 1B9C F1		     NS      1		     FF if normal, 1 bit only for conti
   919 1B9D 53		     LR      3,A
   920 1B9E 28 1A 42	     PI      BKT
   921 1BA1 20 28	     LI      ISE-1	     Empty squares backward
   922 1BA3 C4		     AS      4
   923 1BA4 0B		     LR      IS,A
   924 1BA5 4C		     LR      A,S
   925 1BA6 13		     SL      1
   926 1BA7 F3		     NS      3
   927 1BA8 53		     LR      3,A
   928 1BA9 20 1B	     LI      ISP-1	   Look to passive pieces backward
   929 1BAB C4		     AS      4
   930 1BAC 0B		     LR      IS,A
   931 1BAD 4D		   LR	   A,I
   932 1BAE 15		   SL	   4
   933 1BAF 13		   SL	   1
   934 1BB0 50		   LR	   0,A
   935 1BB1 4C		   LR	   A,S
   936 1BB2 14		   SR	   4
   937 1BB3 C0		   AS	   0
   938 1BB4 F3		   NS	   3
   939 1BB5 53		   LR	   3,A		   Pieces that can jump LB
   940 1BB6 84 0E	     BZ      FJ1
   941 1BB8 20 13	     LI      H'13'	     The RBJ direction and J indicator
   942 1BBA 55		     LR      5,A
   943 1BBB 28 1A 4F	     PI      STMV
   944 1BBE 70		     CLR
   945 1BBF E6		     XS      6
   946 1BC0 84 0D	     BZ      FJ2	    We want them all
   947 1BC2 29 17 90 LBJ2    JMP     SELE	     A successful NEXT
   948 1BC5 70	     FJ1    CLR			     No backward moves
   949 1BC6 E6		     XS      6
   950 1BC7 84 06	     BZ      FJ2	     We want them all
   951 1BC9 81 09	     BP      FJ3	    Try next byte
   952 1BCB 29 1D 31	     JMP     AFT	     A NEXT continuation failure
   953 1BCE 41	     FJ2     LR      A,1	     Was it a first continuation try?
   954 1BCF 25 FF	     CI      H'FF'
 **OPERATOR SYNTAX    LINE #   955
   955
   956 1BD1 94 0B	     BNZ     FJ4	     Yes
   957 1BD3 44	     FJ3     LR      A,4	     No, to next board byte
   958 1BD4 1F		     INC
   959 1BD5 21 03	     NI      H'3'
   960 1BD7 54		     LR      4,A
   961 1BD8 84 4D	     BZ      FJ9	    There are no more
   962 1BDA 29 1B 08	     JMP     RFJ	     Go round again for next byte
   963 1BDD 70	     FJ4     CLR		     A first continuation try
   964 1BDE E2		     XS      2		     Was it successful?
   965 1BDF 84 11	     BZ      FJ5	     No
   966		     * Successful continuation try
   967 1BE1 4B		     LR      A,HL
   968 1BE2 14		     SR      4
   969 1BE3 25 05	     CI      H'5'	     Where are we?
   970 1BE5 91 1C	     BM      FJ7	     Could be a second continuation
   971 1BE7 25 01	     CI      H'1'	     A player's board
 **OPERATOR SYNTAX    LINE #   972
   972
   973 1BE9 94 47	     BNZ     FJ10	     No
   974 1BEB 28 13 13	     PI      BORD	     Show board
   975 1BEE 29 12 0E	     JMP     DJMP
   976		     * Unsuccessful continuation try
   977 1BF1 4B	     FJ5     LR      A,HL
   978 1BF2 14		     SR      4
   979 1BF3 25 01	     CI      H'1'	     A player's board
   980 1BF5 91 04	     BM      FJ6	     No
   981 1BF7 29 19 97	     JMP     FOR5	     "MY MOVE" etc
   982 1BFA 71	     FJ6     LIS     H'1'	     Back 2 levels
   983 1BFB 18		     COM
   984 1BFC 15		     SL      4
   985 1BFD CB		     AS      HL
   986 1BFE 5B		     LR      HL,A
   987 1BFF 29 18 F1	     JMP     FORE
   988 1C02 10	     FJ7     LR      DC,H
   989 1C03 70		     LIS     H'DE'	     Back 3 levels at ACTM
   990 1C04 8E		     ADC
   991 1C05 70		     CLR
   992 1C06 8C		     XM			     A previous continuation?
   993 1C07 81 29	     BP      FJ10	     No
   994 1C09 16		     LM			     were there more than 2 moves?
   995 1C0A 25 01	     CI      H'1'
   996 1C0C 91 11	     BM      FJ8	     Yes so save this one here
   997 1C0E 10		     LR      DC,H	     No, so we can move data
   998 1C0F 2C		     XDC		     back by 2 levels
   999 1C10 71		     LIS     H'1'	     and so save space
  1000 1C11 18		     COM		     A fast -2
  1001 1C12 15		     SL      4
  1002 1C13 CB		     AS      HL
  1003 1C14 5B		     LR      HL,A
  1004 1C15 10		     LR      DC,H
  1005 1C16 62		     LISU    2
  1006 1C17 68		     LISL    0
  1007 1C18 72		     LIS     H'2'
  1008 1C19 15		     SL      4
  1009 1C1A 5C		     LR      S,A
  1010 1C1B 28 43 CD	     PI      TRAN
  1011 1C1E 4B	     FJ8     LR      A,HL
  1012 1C1F 14		     SR      4
  1013 1C20 25 0E	     CI      H'E'	     Are we out of space?
  1014 1C22 84 32	     BZ      FJ12	     Yes
  1015 1C24 90 1C	     BR      FJ11
  1016		     * All bytes exhausted
  1017 1C26 70	     FJ9     CLR
  1018 1C27 E2		     XS      2
  1019 1C28 94 08	     BNZ      FJ10	     Jumps found
  1020 1C2A 70		     CLR
  1021 1C2B E6		     XS      6		     Go to normal moves?
  1022 1C2C 84 31	     BZ      RFN	     Yes
  1023 1C2E 29 1D 31	     JMP     AFT	     No more jumps
  1024 1C31 4B	     FJ10    LR      A,HL
  1025 1C32 14		     SR      4
  1026 1C33 25 0E	     CI      H'E'
  1027 1C35 91 1F	     BM      FJ12	     Too bad, out of space
  1028 1C37 25 01	     CI      H'1'
  1029 1C39 94 07	     BNZ     FJ11	      Not player's FIND
  1030 1C3B 28 13 13	     PI      BORD	     Show board with piece moved
  1031 1C3E 29 10 F5	     JMP     PMOV	     Init cursor and say "MUST JUMP"
  1032 1C41 24 FE    FJ11    AI      -H'2'
  1033 1C43 2A 0F B0	     DCI     MOBS
  1034 1C46 8E		     ADC
  1035 1C47 42		     LR      A,2
  1036 1C48 17		     ST
  1037 1C49 10		     LR      DC,H	     Prepare for continuation
  1038 1C4A 20 1E	     LI      H'1E'	     To ACTM in passed board
  1039 1C4C 8E		     ADC		     These data are over-
  1040 1C4D 70		     CLR		     written if no continuation
  1041 1C4E 18		     COM		     A -1 signals
  1042 1C4F 17		     ST			     a continuation
  1043 1C50 42		     LR      A,2	     A 1 here signals
  1044 1C51 17		     ST			     a single jump case
  1045 1C52 29 17 90	     JMP     SELE
  1046 1C55 64	     FJ12    LISU    KLOC	     Correct PASM and stop
  1047 1C56 6F		     LISL    H'7'
  1048 1C57 71		     LIS     H'1'	    Allow for a piece capture
  1049 1C58 18		     COM		    A fast -2
  1050 1C59 CC		     AS      S
  1051 1C5A 5C		     LR      S,A
  1052 1C5B 29 1E 17	     JMP     EVAL
  1053		     * RFN LFN RBN LBN NORF NORT
  1054 1C5E 20 18    RFN     LI      ISA
  1055 1C60 C4		     AS      4		     Add byte off-set
  1056 1C61 0B		     LR      IS,A	     Get to initial byte
  1057 1C62 4C		     LR      A,S
  1058 1C63 53		     LR      3,A
  1059 1C64 28 1A 3A	     PI      FKT
  1060 1C67 84 49	     BZ      RBN
  1061 1C69 20 29	     LI      ISE	     Start of empty region
  1062 1C6B C4		     AS      4		     Add off-set
  1063 1C6C 0B		     LR      IS,A
  1064 1C6D 4D		   LR	   A,I		  Look to RF empty squares
  1065 1C6E 15		   SL	   4
  1066 1C6F 50		   LR	   0,A
  1067 1C70 4C		   LR	   A,S
  1068 1C71 14		   SR	   4
  1069 1C72 12		   SR	   1
  1070 1C73 C0		   AS	   0
  1071 1C74 F3		   NS	   3
  1072 1C75 53		   LR	   3,A		  Pieces that can move RF
  1073 1C76 84 0D	     BZ      LFN
  1074 1C78 70		     CLR
  1075 1C79 55		     LR      5,A
  1076 1C7A 28 1A 4F	     PI      STMV
  1077 1C7D 70		     CLR
  1078 1C7E E6		     XS      6
  1079 1C7F 84 04	     BZ      LFN
  1080 1C81 29 17 90	     JMP     SELE
  1081 1C84 20 18    LFN     LI      ISA
  1082 1C86 C4		     AS      4		     Add byte off-set
  1083 1C87 0B		     LR      IS,A	     Get to initial byte
  1084 1C88 4C		     LR      A,S
  1085 1C89 53		     LR      3,A
  1086 1C8A 28 1A 3A	     PI      FKT
  1087 1C8D 84 23	     BZ      RBN
  1088 1C8F 20 29	     LI      ISE	     Start of empty region
  1089 1C91 C4		     AS      4		     Add off-set
  1090 1C92 0B		     LR      IS,A
  1091 1C93 4D		   LR	   A,I		     Look to LF empty squares
  1092 1C94 15		   SL	   4
  1093 1C95 13		   SL	   1
  1094 1C96 50		   LR	   0,A
  1095 1C97 4C		   LR	   A,S
  1096 1C98 14		   SR	   4
  1097 1C99 C0		   AS	   0
  1098 1C9A F3		   NS	   3
  1099 1C9B 53		   LR	   3,A		  Pieces that can move LF
  1100 1C9C 84 14	     BZ      RBN
  1101 1C9E 71		     LIS     H'1'
  1102 1C9F 55		     LR      5,A
  1103 1CA0 28 1A 4F	     PI      STMV
  1104 1CA3 70		     CLR
  1105 1CA4 E6		     XS      6
  1106 1CA5 84 0B	     BZ      RBN
  1107 1CA7 29 17 90	     JMP     SELE
  1108 1CAA 45	     RBN0    LR      A,5
  1109 1CAB 25 02	     CI      H'2'	     Which direction 1, 2 or 3?
  1110 1CAD 91 26	     BM      LBN	     It was a 3
  1111 1CAF 94 D4	     BNZ     LFN	     It was a 1
  1112 1CB1 20 18    RBN     LI      ISA
  1113 1CB3 C4		     AS      4		     Add byte off-set
  1114 1CB4 0B		     LR      IS,A	     Get to initial byte
  1115 1CB5 4C		     LR      A,S
  1116 1CB6 53		     LR      3,A
  1117 1CB7 28 1A 42	     PI      BKT
  1118 1CBA 84 3F	     BZ      NORT
  1119 1CBC 20 28	     LI      ISE-1
  1120 1CBE C4		     AS      4		     Add off-set
  1121 1CBF 0B		     LR      IS,A
  1122 1CC0 4D		   LR	   A,I		  Look to RB empty squares
  1123 1CC1 15		   SL	   4
  1124 1CC2 50		   LR	   0,A
  1125 1CC3 4C		   LR	   A,S
  1126 1CC4 14		   SR	   4
  1127 1CC5 12		   SR	   1
  1128 1CC6 C0		   AS	   0
  1129 1CC7 F3		   NS	   3
  1130 1CC8 53		   LR	   3,A		  Pieces that can move RB
  1131 1CC9 84 0A	     BZ      LBN	  None can
  1132 1CCB 72		     LIS     H'2'
  1133 1CCC 55		     LR      5,A
  1134 1CCD 28 1A 4F	     PI      STMV
  1135 1CD0 70		     CLR
  1136 1CD1 E6		     XS      6
  1137 1CD2 94 24	     BNZ     NORF
  1138 1CD4 20 18    LBN     LI      ISA
  1139 1CD6 C4		     AS      4		     Add byte off-set
  1140 1CD7 0B		     LR      IS,A	     Get to initial byte
  1141 1CD8 4C		     LR      A,S
  1142 1CD9 53		     LR      3,A
  1143 1CDA 28 1A 42	     PI      BKT
  1144 1CDD 84 1C	     BZ      NORT
  1145 1CDF 20 28	     LI      ISE-1
  1146 1CE1 C4		     AS      4		     Add off-set
  1147 1CE2 0B		     LR      IS,A
  1148 1CE3 4D		   LR	   A,I		     Look to LB empty squares
  1149 1CE4 15		   SL	   4
  1150 1CE5 13		   SL	   1
  1151 1CE6 50		   LR	   0,A
  1152 1CE7 4C		   LR	   A,S
  1153 1CE8 14		   SR	   4
  1154 1CE9 C0		   AS	   0
  1155 1CEA F3		   NS	   3
  1156 1CEB 53		   LR	   3,A		  Pieces that can move LB
  1157 1CEC 84 0D	     BZ      NORT
  1158 1CEE 73		     LIS     H'3'
  1159 1CEF 55		     LR      5,A
  1160 1CF0 28 1A 4F	     PI      STMV
  1161 1CF3 70		     CLR
  1162 1CF4 E6		     XS      6
  1163 1CF5 84 04	     BZ      NORT
  1164 1CF7 29 17 90 NORF    JMP     SELE
  1165		     *We get here if we want to compute mobility and also if no moves f
  1166 1CFA 44	     NORT    LR      A,4
  1167 1CFB 1F		     INC
  1168 1CFC 21 03	     NI      H'3'
  1169 1CFE 54		     LR      4,A
  1170 1CFF 84 04	     BZ      NOR0
  1171 1D01 29 1C 5E	     JMP     RFN	     Go round again for next byte
  1172 1D04 70	     NOR0    CLR
  1173 1D05 E2		     XS      2		     Get mobility count
  1174 1D06 84 2A	     BZ      AFT	     No moves found
  1175 1D08 4B	     NOR1    LR      A,HL	     Where are we?
  1176 1D09 14		     SR      4		     Get Ply number
  1177 1D0A 25 01	     CI      H'1'
  1178 1D0C 94 07	     BNZ     NOR2	     Checking for possible player's mov
  1179 1D0E 28 13 13	     PI      BORD	     Put up board for player
  1180 1D11 29 10 F5	     JMP     PMOV	     Yes, so let him move
  1181 1D14 25 0E    NOR2    CI      H'E'	     Are we out of space?
  1182 1D16 84 17	     BZ      NOR4	     Yes
  1183 1D18 24 FE	     AI      -H'2'	     To index MOBS
  1184 1D1A 50		     LR      0,A
  1185 1D1B 2A 0C 28	     DCI     PLY0	     Neg. of allowed MOB sum
  1186 1D1E 16		     LM
  1187 1D1F 2A 0F B0	     DCI     MOBS
  1188 1D22 88	     NOR3    AM			     Add up mobilities
  1189 1D23 30		     DS      0
  1190 1D24 94 FD	     BNZ     NOR3
  1191 1D26 C2		     AS      2		     Add in the current one
  1192 1D27 81 06	     BP      NOR4	     Time to stop
  1193 1D29 42		     LR      A,2
  1194 1D2A 17		     ST			     Save latest mobility
  1195 1D2B 29 17 90	     JMP     SELE	     and go on
  1196 1D2E 29 1E 17 NOR4    JMP     EVAL	     Evaluate
  1197		     * AFT
  1198		     *MAT     EQU     H'0'	      Register used for Material Adv. t
  1199		     *POT     EQU     H'6'	      Register used for Positional Adv.
  1200		     *Defined earlier
  1201		     HLS     EQU     H'4'	     Register to save HL off-set
  1202		     *No more moves found so time to back up
  1203 1D31 4B	     AFT     LR      A,HL	     Prepare to back up
  1204 1D32 14		     SR      4
  1205 1D33 25 02	     CI      H'2'
  1206 1D35 94 12	     BNZ     AFT0	     Not at end of tree search
  1207		     *Prepare for verification of player's reply
  1208 1D37 29 1F 4D	     JMP     STOP
  1209 1D3A 71	     AFTT    LIS     H'1'	     Back to player's board
  1210 1D3B 15		     SL      4
  1211 1D3C 5B		     LR      HL,A
  1212 1D3D 47		     LR      A,7
  1213 1D3E 18		     COM		     Reverse sides
  1214 1D3F 57		     LR      7,A
  1215 1D40 2A 0E D0	     DCI     PLMV	     This space is also used by TREE ro
  1216 1D43 70		     CLR		     Clear first byte
  1217 1D44 17		     ST
  1218 1D45 29 1A EB	     JMP     FIND	     Get verification info for move
  1219 1D48 24 FE    AFT0    AI      -H'2'	     SCOR not saved for HL=10
  1220 1D4A 13		     SL      1		     2 bytes per entry
  1221 1D4B 2A 0E F0	     DCI     SCOR
  1222 1D4E 8E		     ADC
  1223 1D4F 0E		     LR      Q,DC
  1224 1D50 16		     LM
  1225 1D51 50		     LR      MAT,A	       The current material advantage t
  1226 1D52 16		     LM
  1227 1D53 56		     LR      POT,A	       The current positional term
  1228 1D54 4B	     AFTE    LR      A,HL
  1229 1D55 25 30	     CI      H'30'
  1230 1D57 94 0A	     BNZ     AFT1	     Must test for double jump and cont
  1231 1D59 2A 0E F0	     DCI     SCOR
  1232 1D5C 0E		     LR      Q,DC
  1233 1D5D 72		     LIS     H'2'
  1234 1D5E 51		     LR      1,A	     So board can be saved if indicated
  1235 1D5F 29 1D BB	     JMP     AP2X	     Can handle with -2 passed case
  1236 1D62 10	     AFT1    LR      DC,H	     EVAL enters here
  1237 1D63 71		     LIS     H'1'	     Neg. ACTM for passed board
  1238 1D64 18		     COM		     Fast -2
  1239 1D65 8E		     ADC
  1240 1D66 70		     CLR
  1241 1D67 8C		     XM			     Is -1 board passed
  1242 1D68 91 17	     BM      AFP1	     Yes
  1243 1D6A 20 EF	     LI      H'EF'	     Is -2 board passed
  1244 1D6C 8E		     ADC
  1245 1D6D 70		     CLR
  1246 1D6E 8C		     XM
  1247 1D6F 91 2B	     BM      AFP2	     Yes
  1248		     * -1 and -2 boards not passed
  1249 1D71 4B		     LR      A,HL
  1250 1D72 14		     SR      4
  1251 1D73 24 FE	     AI      -H'2'
  1252 1D75 51		     LR      1,A	     Back 2 from current HL
  1253 1D76 24 FE	     AI      -H'2'
  1254 1D78 13		     SL      1
  1255 1D79 2A 0E F0	     DCI     SCOR
  1256 1D7C 8E		     ADC
  1257 1D7D 0E		     LR      Q,DC
  1258 1D7E 90 24	     BR      AP2Y	     General routine can now handle
  1259		     * -1 board is passed so this was a multiple jump
  1260 1D80 28 1D FC AFP1    PI      AFBX
  1261 1D83 71		     LIS     H'1'
  1262 1D84 C1		     AS      1
  1263 1D85 51		     LR      1,A
  1264 1D86 72		     LIS     H'2'
  1265 1D87 8E		     ADC
  1266 1D88 0E		     LR      Q,DC
  1267 1D89 40		     LR      A,MAT
  1268 1D8A 8D		     CM
  1269 1D8B 91 07	     BM      AP12	     Back score for sure
  1270 1D8D 94 0A	     BNZ     AP13	     Do not back score
  1271 1D8F 46		     LR      A,POT
  1272 1D90 8D		     CM
  1273 1D91 81 06	     BP      AP13	     Do not back
  1274 1D93 0F	     AP12    LR      DC,Q	     Back score here
  1275 1D94 40		     LR      A,MAT
  1276 1D95 17		     ST
  1277 1D96 46		     LR      A,POT
  1278 1D97 17		     ST
  1279 1D98 29 1D E5 AP13    JMP     AF2B	     Back H by 2
  1280		     * -2 board is passed so backing into a continuation
  1281 1D9B 28 1D FC AFP2    PI      AFBX
  1282 1D9E 41		     LR      A,1
  1283 1D9F 25 01	     CI      H'1'
  1284 1DA1 84 11	     BZ      AP22	     Can't prune and may need to save b
  1285		     * Will handle normal both normal and backing into continuation cas
  1286 1DA3 40	     AP2Y    LR      A,MAT
  1287 1DA4 8D		     CM
  1288 1DA5 91 0D	     BM      AP22	     Can't prune
  1289 1DA7 94 05	     BNZ     AP21	     Can prune
  1290 1DA9 46		     LR      A,POT
  1291 1DAA 8D		     CM
  1292 1DAB 91 07	     BM      AP22	     Can't prune
  1293 1DAD 41	     AP21    LR      A,1	     Prune around multiple jump
  1294 1DAE 15		     SL      4
  1295 1DAF 5B		     LR      HL,A
  1296 1DB0 29 1D F0	     JMP     ABBB	     Prepare for SELE
  1297 1DB3 20 02    AP22    LI      H'2'	     Forward 1 level
  1298 1DB5 0F		     LR      DC,Q
  1299 1DB6 8E		     ADC
  1300 1DB7 0E		     LR      Q,DC	     We may need to save score
  1301 1DB8 41		     LR      A,1
  1302 1DB9 1F		     INC		     Keep HL value in step
  1303 1DBA 51		     LR      1,A
  1304 1DBB 46	     AP2X    LR      A,POT
  1305 1DBC 18		     COM
  1306 1DBD 1F		     INC
  1307 1DBE 56		     LR      POT,A
  1308 1DBF 40		     LR      A,MAT
  1309 1DC0 18		     COM
  1310 1DC1 1F		     INC
  1311 1DC2 50		     LR      MAT,A
  1312 1DC3 8D		     CM
  1313 1DC4 91 07	     BM      AP23	     Can back score
  1314 1DC6 94 22	     BNZ     AF1B	     Can't back score
  1315 1DC8 46		     LR      A,POT
  1316 1DC9 8D		     CM
  1317 1DCA 81 1E	     BP      AF1B	     Can't back score
  1318 1DCC 0F	     AP23    LR      DC,Q	     Back score
  1319 1DCD 40		     LR      A,MAT
  1320 1DCE 17		     ST
  1321 1DCF 46		     LR      A,POT
  1322 1DD0 17		     ST
  1323 1DD1 41		     LR      A,1	     Should the board be saved?
  1324 1DD2 25 02	     CI      H'2'
  1325 1DD4 94 14	     BNZ     AF1B	     No, back 1 level in HL
  1326 1DD6 10		     LR      DC,H	     Yes
  1327 1DD7 2C		     XDC
  1328 1DD8 2A 0E 10	     DCI     TREE
  1329 1DDB 62		     LISU    2
  1330 1DDC 68		     LISL    0
  1331 1DDD 71		     LIS     H'1'
  1332 1DDE 15		     SL      4		     Fast H'10'
  1333 1DDF 5C		     LR      S,A
  1334 1DE0 28 43 CD	     PI      TRAN	     Save board
  1335 1DE3 90 05	     BR      AF1B	     and back 1 level
  1336		     * Final backing up
  1337 1DE5 7E	     AF2B    LIS     H'E'	     Back 2 levels
  1338 1DE6 15		     SL      4		     Fast H'E0'
  1339 1DE7 90 06	     BR      AFBB
  1340 1DE9 47	     AF1B    LR      A,7	     Reverse sides and back 1 level
  1341 1DEA 18		     COM
  1342 1DEB 57		     LR      7,A
  1343 1DEC 7F		     LIS     H'F'	     Back 1 level
  1344 1DED 15		     SL      4		     Fast H'F0'
  1345 1DEE CB	     AFBB    AS      HL
  1346 1DEF 5B		     LR      HL,A
  1347 1DF0 10	     ABBB    LR      DC,H
  1348 1DF1 28 1A 0D	     PI      RASC
  1349 1DF4 2A 0C 2F	     DCI     CFLG
  1350 1DF7 70		     CLR
  1351 1DF8 17		     ST			     Clear compacting flag
  1352 1DF9 29 17 90	     JMP     SELE
  1353		     * Subroutine to back by 2's to non-passed board
  1354 1DFC 08	     AFBX    LR      K,P
  1355 1DFD 20 FF	     LI      -H'1'
  1356 1DFF 8E		     ADC		     To ACTM  location
  1357 1E00 0E		     LR      Q,DC
  1358 1E01 0F	     AFB2    LR      DC,Q
  1359 1E02 71		     LIS     H'1'
  1360 1E03 18		     COM
  1361 1E04 15		     SL      4		     Back by H'20'
  1362 1E05 8E		     ADC
  1363 1E06 0E		     LR      Q,DC
  1364 1E07 70		     CLR
  1365 1E08 8C		     XM
  1366 1E09 91 F7	     BM      AFB2	     Go around again
  1367 1E0B 03		     LR      A,QL
  1368 1E0C 14		     SR      4
  1369 1E0D 51		     LR      1,A	     Save to get new HL value
  1370 1E0E 24 FE	     AI      -H'2'
  1371 1E10 13		     SL      1		     2 bytes per entry, remember
  1372 1E11 2A 0E F0	     DCI     SCOR
  1373 1E14 8E		     ADC
  1374 1E15 0E		     LR      Q,DC	     Q points back 2 from first passed
  1375 1E16 0C		     PK
  1376		     * EVAL
  1377		     * HLS used temporarily in multiply routine
  1378 1E17 64	     EVAL    LISU    4		       Compute the material advantage t
  1379 1E18 6E		     LISL    6		       Get to ACTM
  1380 1E19 4D		     LR      A,I
  1381 1E1A 50		     LR      MAT,A	       ACTM
  1382 1E1B 4D		     LR      A,I
  1383 1E1C 54		     LR      HLS,A	       PASM
  1384 1E1D 18		     COM
  1385 1E1E 1F		     INC
  1386 1E1F C0		     AS      MAT
  1387 1E20 53		     LR      3,A	     ACTM-PASM
  1388 1E21 81 03	     BP      EVA0
  1389 1E23 18		     COM
  1390 1E24 1F		     INC
  1391 1E25 51	     EVA0    LR      1,A	     |A-P|
  1392 1E26 40		     LR      A,MAT
  1393 1E27 C4		     AS      HLS	     A+P
  1394 1E28 18		     COM
  1395 1E29 1F		     INC		     -(A+P)
  1396 1E2A 2A 0C 2C	     DCI     AP20
  1397 1E2D 88		     AM			     Add initial value +6
  1398 1E2E 12		     SR      1		     and divide by 2
  1399 1E2F 54		     LR      HLS,A	     Save temporarily, multiply by
  1400 1E30 70		     CLR		     by smaller pos. # in 1
  1401 1E31 50		     LR      MAT,A	       Product into MAT
  1402 1E32 41		     LR      A,1
  1403 1E33 21 01    EVA1    NI      H'1'	     Is the rightmost bit a 1?
  1404 1E35 84 04	     BZ      EVA2	     No
  1405 1E37 44		     LR      A,HLS
  1406 1E38 C0		     AS      MAT
  1407 1E39 50		     LR      MAT,A
  1408 1E3A 44	     EVA2    LR      A,HLS
  1409 1E3B 13		     SL      1
  1410 1E3C 54		     LR      HLS,A
  1411 1E3D 41		     LR      A,1
  1412 1E3E 12		     SR      1
  1413 1E3F 51		     LR      1,A
  1414 1E40 94 F2	     BNZ     EVA1	     Product is not complete
  1415 1E42 40		     LR      A,MAT
  1416 1E43 25 33	     CI      H'33'	     Maximum of 51
  1417 1E45 81 04	     BP      EV21
  1418 1E47 20 33	     LI      H'33'	     Limit range to avoid CM trouuble
  1419 1E49 50		     LR      MAT,A
  1420 1E4A 70	     EV21    CLR
  1421 1E4B E3		     XS      3		     To get sign
  1422 1E4C 40		     LR      A,MAT
  1423 1E4D 81 74	     BP      EVA3
  1424 1E4F 18		     COM
  1425 1E50 1F		     INC
  1426 1E51 50		     LR      MAT,A	       Material advantage with sign
  1427		     * Compute guard row credit
  1428 1E52 63		     LISU    PLOC
  1429 1E53 70		     CLR
  1430 1E54 53		     LR      3,A
  1431 1E55 E7		     XS      7
  1432 1E56 84 1C	     BZ      EVG2	     Black is active
  1433 1E58 6C		     LISL    4		     Passive's (black's) guard byte
  1434 1E59 7A		     LIS     H'A'
  1435 1E5A 15		     SL      4		     Passive's guard bits
  1436 1E5B FC		     NS      S		     Are pieces there?
  1437 1E5C 51		     LR      1,A
  1438 1E5D 24 FF	     AI      H'FF'
  1439 1E5F F1		     NS      1		     Both of them?
  1440 1E60 84 04	     BZ      EVG1	     No
  1441 1E62 70		     CLR
  1442 1E63 18		     COM		     Debit
  1443 1E64 53		     LR      3,A
  1444 1E65 6B	     EVG1    LISL    3		     Active's (red's) guard byte
  1445 1E66 75		     LIS     H'5'	     Active's guard bits
  1446 1E67 FC		     NS      S		     Are pieces there?
  1447 1E68 51		     LR      1,A
  1448 1E69 24 FF	     AI      H'FF'
  1449 1E6B F1		     NS      1		     Both of them?
  1450 1E6C 84 1F	     BZ      EVG4	     No
  1451 1E6E 43		     LR      A,3
  1452 1E6F 1F		     INC
  1453 1E70 53		     LR      3,A	     Credit
  1454 1E71 90 1A	     BR      EVG4
  1455 1E73 6F	     EVG2    LISL    7		     Passive's (red's) guard byte
  1456 1E74 75		     LIS     H'5'
  1457 1E75 FC		     NS      S		     Are pieces there?
  1458 1E76 51		     LR      1,A
  1459 1E77 24 FF	     AI      H'FF'
  1460 1E79 F1		     NS      1		     Both of them?
  1461 1E7A 84 04	     BZ      EVG3	     No
  1462 1E7C 70		     CLR
  1463 1E7D 18		     COM		     Debit
  1464 1E7E 53		     LR      3,A
  1465 1E7F 68	     EVG3    LISL    0		     Active's (black's) guard byte
  1466 1E80 7A		     LIS     H'A'
  1467 1E81 14		     SR      4		     Active's guard bits
  1468 1E82 FC		     NS      S		     Are pieces there?
  1469 1E83 51		     LR      1,A
  1470 1E84 24 FF	     AI      H'FF'
  1471 1E86 F1		     NS      1		     Both of them?
  1472 1E87 84 04	     BZ      EVG4	     No
  1473 1E89 43		     LR      A,3
  1474 1E8A 1F		     INC		     Credit
  1475 1E8B 53		     LR      3,A
  1476 1E8C 43	     EVG4    LR      A,3
  1477 1E8D 13		     SL      1		     Credit of 2, 0 or -2
  1478 1E8E C0		     AS      MAT	     Add to MAT
  1479 1E8F 50		     LR      MAT,A
  1480		     * Center credit
  1481 1E90 70		     CLR
  1482 1E91 53		     LR      3,A
  1483 1E92 6D		     LISL    5		     Start with passive
  1484 1E93 20 66    EVD0    LI      H'66'	     These squares
  1485 1E95 FD		     NS      I		     Are they occupied?
  1486 1E96 84 0E	     BZ      EVD2	     No
  1487 1E98 51	     EVD1    LR      1,A	     Count them
  1488 1E99 33		     DS      3
  1489 1E9A 70		     CLR
  1490 1E9B 18		     COM
  1491 1E9C C1		     AS      1
  1492 1E9D F1		     NS      1
  1493 1E9E 94 F9	     BNZ     EVD1
  1494 1EA0 0A		     LR      A,IS
  1495 1EA1 21 01	     NI      H'1'	     Can we consider next byte?
  1496 1EA3 84 EF	     BZ      EVD0	     Yes
  1497 1EA5 43	     EVD2    LR      A,3
  1498 1EA6 C0		     AS      MAT	     Debit for passive occupancy
  1499 1EA7 50		     LR      MAT,A
  1500 1EA8 70		     CLR
  1501 1EA9 53		     LR      3,A
  1502 1EAA 69		     LISL    1		     Now for active's bytes
  1503 1EAB 20 66    EVD3    LI      H'66'	     These squares
  1504 1EAD FD		     NS      I		     Are they occupied?
  1505 1EAE 84 09	     BZ      EVD6	     No
  1506 1EB0 51	     EVD5    LR      1,A	     Count them
  1507 1EB1 33		     DS      3
  1508 1EB2 70		     CLR
  1509 1EB3 18		     COM
  1510 1EB4 C1		     AS      1
  1511 1EB5 F1		     NS      1
  1512 1EB6 94 F9	     BNZ     EVD5
  1513 1EB8 0A	     EVD6    LR      A,IS
  1514 1EB9 21 01	     NI      H'1'	     Can we consider the next byte?
  1515 1EBB 84 EF	     BZ      EVD3	     Yes
  1516 1EBD 43	     EVD8    LR      A,3
  1517 1EBE 18		     COM
  1518 1EBF 1F		     INC		     Credit for active occupancy
  1519 1EC0 C0		     AS      MAT
  1520 1EC1 50		     LR      MAT,A
  1521		     * Now the second SCOR term
  1522 1EC2 4B	     EVA3    LR      A,HL
  1523 1EC3 14		     SR      4
  1524 1EC4 24 FE	     AI      -H'2'
  1525 1EC6 55		     LR      5,A	     Save PLY
  1526 1EC7 2A 0F B0	     DCI     MOBS	     Compute mobility term
  1527 1ECA 24 FF	     AI      -H'1'
  1528 1ECC 8E		     ADC
  1529 1ECD 16		     LM			     Get earlier mobility
  1530 1ECE 18		     COM
  1531 1ECF 1F		     INC
  1532 1ED0 C2		     AS      2		     Add current mobility
  1533 1ED1 25 0C	     CI      H'C'	     Difference limited to |12|
  1534 1ED3 81 02	     BP      EVA4
  1535 1ED5 7C		     LIS     H'C'
  1536 1ED6 25 F4    EVA4    CI      -H'C'
  1537 1ED8 91 03	     BM      EVA5
  1538 1EDA 20 F4	     LI      -H'C'
  1539 1EDC 13	     EVA5    SL      1		     Make room for ply term
  1540 1EDD 13		     SL      1		     Would like to shift more
  1541 1EDE 56		     LR      POT,A	     Save difference (and free 2)
  1542 1EDF 70		     CLR
  1543 1EE0 C0		     AS      MAT
  1544 1EE1 94 03	     BNZ     EVA6
  1545 1EE3 70		     CLR
  1546 1EE4 C6		     AS      POT
  1547 1EE5 45	     EVA6    LR      A,5	     Get ply value
  1548 1EE6 91 07	     BM      EVA7	     Test sign of significant term
  1549 1EE8 18		     COM		     If pos. we add H'C'-PLY
  1550 1EE9 1F		     INC
  1551 1EEA 24 0C	     AI      H'C'
  1552 1EEC 90 03	     BR      EVA8
  1553 1EEE 24 F4    EVA7    AI      -H'C'	     If neg. we add PLY-H'C'
  1554 1EF0 C6	     EVA8    AS      POT	     Add it in
  1555 1EF1 56		     LR      POT,A	     Positional term with PLY
  1556 1EF2 4B	     EVA9    LR      A,HL
  1557 1EF3 14		     SR      4
  1558 1EF4 24 FE	     AI      -H'2'
  1559 1EF6 13		     SL      1
  1560 1EF7 2A 0E F0	     DCI     SCOR
  1561 1EFA 8E		     ADC
  1562 1EFB 0E		     LR      Q,DC
  1563 1EFC 29 1D 54	     JMP     AFTE	     AFT routine handles from here on
  1564		     * EMPT WAST BRAK STOP
  1565 1EFF 08	     EMPT    LR      K,P	     Empty squares in O'51' thru O'54'
  1566 1F00 65		     LISU    ELOC	     with guard bytes in 50 and 55
  1567 1F01 68		     LISL    0
  1568 1F02 70		     CLR
  1569 1F03 5C		     LR      S,A	     Make sure guard byte is empty
  1570 1F04 63		     LISU    PLOC	     Start with ACTIVE
  1571 1F05 74		     LIS     H'4'
  1572 1F06 50		     LR      0,A
  1573 1F07 90 05	     BR      EMP3
  1574 1F09 0A	     EMP2    LR      A,IS
  1575 1F0A 24 30	     AI      H'30'	     Actually subtracting 16
  1576 1F0C 0B		     LR      IS,A
  1577 1F0D 4C	     EMP3    LR      A,S
  1578 1F0E 51		     LR      1,A
  1579 1F0F 0A		     LR      A,IS
  1580 1F10 24 04	     AI      4
  1581 1F12 0B		     LR      IS,A
  1582 1F13 4C		     LR      A,S
  1583 1F14 C1		     AS      1
  1584 1F15 51		     LR      1,A
  1585 1F16 0A		     LR      A,IS
  1586 1F17 24 0D	     AI      H'D'	     Add 13 get to the correct EMPTY lo
  1587 1F19 0B		     LR      IS,A
  1588 1F1A 41		     LR      A,1
  1589 1F1B 18		     COM		     Reverse 1's and 0's
  1590 1F1C 5C		     LR      S,A
  1591 1F1D 30		     DS      0
  1592 1F1E 94 EA	     BNZ     EMP2
  1593 1F20 4D		     LR      A,I	     To index only
  1594 1F21 70		     CLR
  1595 1F22 5C		     LR      S,A	     Upper guard byte
  1596 1F23 0C		     PK
  1597		     *-*-*-*-*-*-*-*-*-*
  1598		     *First replies (maximum of 4 each)
  1599 1F24 33	     BOK2    DC      H'33'   24,20  24-20    To 12-16
  1600 1F25 33		     DC      H'33'   24-20, 24-20
  1601 1F26 43		     DC      H'43'   23-19, 24-20    To 11-15
  1602 1F27 20		     DC      H'20'   22-17, 24-19
  1603 1F28 22		     DC      H'22'   22-17, 22-17    To 10-14
  1604 1F29 22		     DC      H'22'   22-17, 22-17
  1605 1F2A 55		     DC      H'55'   22-18, 22-18    To  9-13
  1606 1F2B 55		     DC      H'55'   22-18, 22-18
  1607 1F2C 31		     DC      H'31'   24-20, 23-18    To 11-16
  1608 1F2D 45		     DC      H'45'   24-19, 22-18
  1609 1F2E 66		     DC      H'66'   21-17, 21-17    To 10-15
  1610 1F2F 66		     DC      H'66'   21-17, 21-17
  1611 1F30 55		     DC      H'55'   22-18, 22-18    To  9-14
  1612 1F31 55		     DC      H'55'   22-18, 22-18
  1613		     *-*-*-
  1614 1F32 08	     WAST    LR      K,P	Delay loop to WASTE some time
  1615 1F33 7F	     WAS2    LIS     H'F'
  1616 1F34 51		     LR      1,A
  1617 1F35 70	     WAS3    CLR
  1618 1F36 52		     LR      2,A
  1619 1F37 32	     WAS4    DS      2
  1620 1F38 94 FE	     BNZ     WAS4
  1621 1F3A 31		     DS      1
  1622 1F3B 94 F9	     BNZ     WAS3
  1623 1F3D 0C		     PK
  1624		     *
  1625 1F3E 4B	     BRAK    LR      A,HL
  1626 1F3F 14		     SR      4
  1627 1F40 2A 0C 2B	     DCI     H'0C2B'
  1628 1F43 8D		     CM
  1629 1F44 84 04	     BZ      BRA2
  1630 1F46 29 17 90	     JMP     SELE
  1631 1F49 2B	     BRA2    NOP
  1632 1F4A 2B		     NOP
  1633 1F4B 2B		     NOP
  1634 1F4C 2B		     NOP
  1635 1F4D 2A 0E F0 STOP    DCI     SCOR	     What kind of score?
  1636 1F50 16		     LM
  1637 1F51 25 3F	     CI      H'3F'	     Does the machine have a win?
  1638 1F53 94 08	     BNZ     STO1	     No
  1639 1F55 16		     LM			     Yes, at what ply?
  1640 1F56 18		     COM
  1641 1F57 1F		     INC
  1642 1F58 52		     LR      2,A
  1643 1F59 77		     LIS     H'7'	     "I can win in "
  1644 1F5A 90 08	     BR      STO2
  1645 1F5C 25 C1    STO1    CI      H'C1'	     Does player have a win?
  1646 1F5E 94 2B	     BNZ     STO4	     No
  1647 1F60 16		     LM			     Yes, at what ply?
  1648 1F61 52		     LR      2,A
  1649 1F62 78		     LIS     H'8'	     "You can win in "
  1650 1F63 50	     STO2    LR      0,A
  1651 1F64 28 12 2B	     PI      WMC	     Write message
  1652 1F67 28 16 79	     PI      DAI	     Disable interruupts
  1653 1F6A 28 16 34	     PI      MWAD	     Wait then update
  1654 1F6D 42		     LR      A,2
  1655 1F6E 24 3F	     AI      H'3F'
  1656 1F70 58		     LR      TEMP,A
  1657 1F71 28 41 05	     PI      WDG	     Report ply
  1658 1F74 28 16 34	     PI      MWAD	     Wait then update
  1659 1F77 28 16 5C	     PI      ENIN	     Enable interrupts
  1660 1F7A 70		     CLR
  1661 1F7B 53		     LR      3,A
  1662 1F7C 28 1F 32 STO3    PI      WAST	     Leave message up awhile
  1663 1F7F 33		     DS      3
  1664 1F80 94 FB	     BNZ     STO3
  1665 1F82 42		     LR      A,2
  1666 1F83 25 02	     CI      H'2'	     Early warning only?
  1667 1F85 91 04	     BM      STO4	     Yes
  1668 1F87 29 40 00	     JMP     H'4000'	     Stop
  1669 1F8A 29 1D 3A STO4    JMP     AFTT	     Continue play
  1670 1F8D 00		     DC      0
  1671 1F8E 00		     DC      0
  1672 1F8F 00		     DC      0
  1673 1F90 00		     DC      0
	      END
 NUMBER OF ERRORS=  3
1
 J     =0009 VY    =0004 VX    =0003 HU    =000A HL    =000B Y	   =0002
 X     =0001 ISA   =0018 MWAD  =1634 BRAK   1F3E EVAL	1E17 HSAL  =0C27
 TRAN  =43CD UDAT  =424D HSAV  =0C26 EVA0   1E25 EVA1	1E33 EVA2   1E3A
 BRA2	1F49 EVA3   1EC2 EVA4	1ED6 EVA5   1EDC EVA6	1EE5 EVA7   1EEE
 EVA8	1EF0 EVA9   1EF2 AFBB	1DEE ABBB   1DF0 MOBS  =0FB0 AFBX   1DFC
 AFB2	1E01 WMC   =122B TXC   =0FE8 SHCB  =0FE2 REDM	1A08 EVD0   1E93
 EVD1	1E98 EVD2   1EA5 EVD3	1EAB EVD5   1EB0 EVD6	1EB8 EVD8   1EBD
 ISE   =0029 TREE  =0E10 CLER  =4762 ISE0  =0028 TRE2  =0E20 TRE3  =0E30
 TRE5  =0E50 WDG   =4105 EVG1	1E65 EVG2   1E73 EVG3	1E7F EVG4   1E8C
 DAI   =1679 UPI   =0FFA ENIN  =165C ULIN  =00F5 WAIT  =4501 LFJ    1B36
 LBJ	1B97 RBJ    1B6A RFJ	1B08 OBJ0  =0C30 NEJ0	1AE8 RBJ0   1B63
 OBJ1  =0F10 LFJ2   1B61 LBJ2	1BC2 RBJ2   1B95 ISK   =0020 BOK2   1F24
 SHL   =27C6 YOLD  =0C2E XOLD  =0C2D DELE   17BC SELE	1790 CFLG  =0C2F
 BFLG  =0C20 INLH   17D2 WTLN  =0FE5 YBLN  =0C23 XBLN  =0C22 SELX  =0C2A
 COL0  =0C29 DEL2   17CC INL2	17DA SEL2   179C INL3	17DF SEL3   17A9
 SEL4	17B2 COM   =08F7 JUMA	1820 JUMB   1821 JUMC	183B PLMD  =0E5B
 BCMD  =006D TCMD  =0044 PLMF  =0EE0 DJMP  =120E JUMP	17F7 TEMP  =0008
 PLMV  =0ED0 BKMV  =0C25 STMV	1A4F STM0   1A59 JUM1	180C STM1   1A60
 JUM2	182D STM2   1A7D JUM3	182E STM3   1A6E JUM4	1848 NOM4   18D9
 STM4	1A75 JUM5   184D NOM5	18DE STM5   1A80 JUM6	1854 NOM6   18E3
 JUM7	1863 JUM9   1867 LFN	1C84 LBN    1CD4 RBN	1CB1 RFN    1C5E
 DBNC  =0FEB FIND   1AEB LINE  =0FDF BLNF  =0C21 BCNT  =0C24 NEN0   1ADE
 RBN0	1CAA FIN1   1AFC ELOC  =0005 KLOC  =0004 PLOC  =0003 TCOL  =0080
 STOP	1F4D XZOP  =0034 SCOR  =0EF0 YPOS  =0F0F XPOS  =0F0C PMOV  =10F5
 SHOW  =1721 STO1   1F5C STO2	1F63 STO3   1F7C STO4	1F8A ISP   =001C
 INPF  =0FE3 POPS  =40BC EMPT	1EFF AFP1   1D80 EMP2	1F09 AFP2   1D9B
 EMP3	1F0D TIR   =45DB SHR   =27D3 SCRA   1A1E BORD  =1313 FORE   18F1
 NORF	1CF7 CMRG  =0FEA INRH	17E1 NORM   18C1 NORT	1CFA FORY   1964
 NOR0	1D04 NOR1   1D08 SCR1	1A23 INR2   17EB NOR2	1D14 SCR2   1A2C
 FOR2	1920 NOR3   1D22 FOR3	1972 NOR4   1D2E FOR4	1975 FOR5   1997
 FOR6	19C7 FOR7   193A FOR8	1903 WMS   =4205 CDS   =41D5 IJS   =22DB
 HLS   =0004 SPS   =40D0 FCS   =43D6 RASC   1A0D PUSH  =40A9 PASM  =0027
 WAST	1F32 YTST  =0009 RGSV  =0FC1 WAS2   1F33 RAS2	1A10 WAS3   1F35
 RAS3	1A17 WAS4   1F37 POT   =0006 CHT   =0003 BKT	1A42 AFT    1D31
 MAT   =0000 FKT    1A3A AFTE	1D54 BOTH   17F0 ACTM  =0026 AFTT   1D3A
 AFT0	1D48 AFT1   1D62 FKT2	1A3F WAUD  =41C8 WAU1  =41CC BMV2   19E3
 NEXA	1AC4 NEXJ   1AE1 NEXT	1A8D NEXX   1AB4 NEXY	1AC1 MAXY  =004D
 PLYD  =00FC PLYH  =00FB JOYI  =21AD JOYT  =0C00 PLYT  =00FD PLY0  =0C28
 FJ1	1BC5 FK1    1A47 AF1B	1DE9 FJ10   1C31 JU11	180E FJ11   1C41
 JU12	1815 AP12   1D93 FJ12	1C55 AP13   1D98 BM17	19E9 BM18   19EB
 BM19	19F2 FJ2    1BCE AF2B	1DE5 AP2X   1DBB AP2Y	1DA3 AP20  =0C2C
 EV21	1E4A AP21   1DAD AP22	1DB3 AP23   1DCC FJ3	1BD3 FJ4    1BDD
 FJ5	1BF1 FJ6    1BFA FJ7	1C02 JU71   186A JU72	18A9 JU73   18B0
 JU77	18A6 JU78   187F FJ8	1C1E FJ9    1C26